МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
кафедра БІТ
Звіт
до лабораторної роботи № 5
з дисципліни "Алгоритмічні основи криптології"
по темі : "Генератори псевдовипадкових послідовностей на базі регістрів зсуву з лінійним зворотнім звязком"
Варіант 1
Львів – 2013
Мета роботи - вивчити основні методи реалізації генераторів псевдовипадкових послідовностей та ознайомитись з методами аналізу з використанням статистичних тестів та навчитися розробляти програмне забеспечення для реалізації перерахованих алгоритмів на компютері.
1. ЗАВДАННЯ
1) Ввести в комп'ютер програми згідно з отриманим завданням.
2) Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками.
3) Остаточні версії блок-схем, програм та отримані результати занести у звіт з лабораторної роботи.
№ варіанту
Функція зворотного звязку
Тип регістру
Тести
1
(8, 4, 3, 2, 0)
Фібоначчі
Частотний і послідовний
3. Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемах алгоритмів і програм, та їх пояснення
Main() - головна фунція
Console.ReadLine() - функція зчитує з клавіатури текст
Console.Write() - функція виводить на екран текст
Console.WriteLine() - функція виводить на екран тексторий ряд
Array.Copy() - функція копіює значення елементів з одного масиву в інший
SizeOfMatrix() - функція у котрій вводимо кількість розрядів
Generator() - конструктор оголошує змінні для роботи генератора
ChosePolinoms() - функція у котрій вибираємо тип поліномів
OneDiagonals() - функція, котра створює матрицю в котрій перший рядок - поліном, решта рядків заповнені по діагоналі 1
ShowMatrix() - функція виводить на екран матрицю
SetDegree() - функція у котрій вводимо степінь матриці
MatrixToDegree() - функція підносить матрицю до вказаного степеня
Generation() - функція котра реалізує процес генерації псевдовипадкових чисел
Eq() - функція перевіряє чи обидва масиви рівні
ShowResult() - функція виводить результат, на даному такті двійкову послідовність, переводить її в 10-ву, і виводить
ForCoordinates() - функція заповнює файл координатами для графічного тесту
Testin() - конструктор керує виконанням статистичних тестів
Testing1() - функція, частотний тест
Testing2() - функція, частотний тест в підпослідовностях
Testing3() - функція, тест дирок
bsize - змінна цілого типу, кількість розрядів
fv - об'єкт, з доступом до класу Generator
polynomsType - змінна цілого типу, тип поліномів
m_step - змінна цілого типу, степінь матриці
m_size - змінна цілого типу, розмір матриці
a - двовимірний масив цілого типу, початкова матриця
b - двовимірний масив цілого типу, копія а
generator - двовимірний масив цілого типу, піднесена до степеня кінцева матриця
ran - одновимірний масив цілого типу, 2-ва послідовність псевдовипадкове число
gen - одновимірний масив цілого типу, копія ran
test - одновимірний масив цілого типу, частина послідовності для тестування
i_test - змінна цілого типу, індекс test
coor - масив дійсного типу, координати для виконання графічного тесту
icoor - змінна цілого типу, індекс coor
per - масив цілого типу, для перевірки періодичності
f_ind_per - змінна цілого типу, перше зафіксоване повторювання
ok_per - змінна логічного типу, індикатор періодичності
l_ind_per - змінна цілого типу, останній зафіксоване повторювання
sw - об'єкт, файл 2-вої послідовності п/в чисел
coord - об'єкт, файл з координатами для графічного тесту
t - об'єкт, файл з інформацією про періодичність
polyn - текстовий рядок, інформацію про поліном
matr_r - текстовий рядок, інформація про степінь матриці
4. Текст програми
Generator.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
class Generator
{
byte polynomsType;
byte m_step;
byte m_size;
// For Matrix
int[,] a;
int[,] b;
int[,] generator;
// For Generation
...